home *** CD-ROM | disk | FTP | other *** search
- #include <exec/exec.h>
- #include <stdio.h>
- #include <stdlib.h>
- #include "dh1:source/doors/romconf/doorheader.h"
- #include "dh0:code/aelib/ae_pragmas.h"
- extern struct Library *AEBase;
- int LastPos(char *c,char *s);
- int Words(char *s);
- char *Strip(char *s);
- char *Parse(char *s,int which);
- void LastCommand(void);
- void end(void);
- char PASSWORD[200];
- char Local[200];
- char Shell_Password[200];
- char Dir[200];
- char PASS[200];
- char CliPrompt[200];
- char temp[200];
- char USER[200];
- #define sr StripReturn
- int K;
- int POS;
- FILE *fi;
-
- #define sm sendmessage
- #define tr(x) sm(x,1)
- #define hk hotkey
- #define pm prompt
- #define sendstring sendmessage
- #define gu getuserstring
- #define NOT_EXISTS(x,y) if(!myexists(x,y))
- #define ss(x) sendmessage(x,0)
- main(int argc,char *argv[])
- {
- FILE *fi;
- int nd;
- char image[200];
- PASSWORD[1]='\0';
- if(argc!=2)
- {
- printf("\n");
- printf("/X Shell version 1.0, written by Joseph Hodge\n");
- printf("This is a (XIM) for AmiExpress 2.08+\n");
- printf("\n");
- exit(0);
- }
- Register(argv[1][0]-'0');
- nd=argv[1][0]-'0';
- strcpy(Local,"DOORS:AESHELL/");
- gu(USER,DT_NAME);
- gu(Dir,BB_LOCAL);
- strcpy(Shell_Password,"AIDAN");
- tr(" ");
- ss("Enter Remote Shell Password: ");
- strcpy(PASS,"");
- POS=1;
- while(PASSWORD[0]!=13)
- {
- hk("",PASSWORD);
- if(PASSWORD[0]=='\b')
- {
- if(POS>1)
- {
- ss ("\b \b"); POS=POS-1; PASS[POS-1]='\0';
- }
- else strcpy(PASS,"");
- }
- if(PASSWORD[0]!=13 && PASSWORD[0]!='\b')
- {
- ss("X");
- strcat(PASS,PASSWORD);
- POS +=1;
- }
- }
- tr("");
- if(strcmp(Shell_Password,PASS))
- {
- tr("");
- tr("Remote Password failed");
- ShutDown();
- end();
- }
- tr("");
- sprintf(image,"Searching for %s ",USER);
- ss(image);
- for(K=1;K<7;K++)
- {
- Delay(40L);ss(" . ");
- }
- ss("Access Granted");
- SetCurrentDirName(Dir);
- sprintf(CliPrompt,"%s>",Dir);
- while(1)
- {
- pm(CliPrompt,temp,190);
- strupr(temp);
- strcpy(image,Strip(temp));
- if(image[0]=='\0') continue;
- sprintf(temp,"%s >%sNode%d/Work/ShellOutPut.txt",image,Dir,nd);
- strcpy(image,temp);
- if(!strncmp(image,"ENDCLI",6)) { tr(""); break; }
- Execute(image,NULL,NULL);
- GetCurrentDirName(image,200L);
- sprintf(temp,"%sNode%d/Work/ShellOutPut",Dir,nd);
- showgfile(temp);
- sprintf(CliPrompt,"%s>",image);
- }
-
- ShutDown();
- end();
- }
- void LastCommand(void)
- {
- }
- void end(void)
- {
- exit(0);
- }
- char *Parse(char *s,int which)
- {
- char Cmd[200];
- char *p;
- register int i;
- strcpy(Cmd,s);
- sr(Cmd);
- i=0;
- p=&Cmd[0];
- while(which)
- {
- if(Cmd[i]==' ' || Cmd[i]=='\0')
- {
- which--;
- if(!which)
- {
- return(p);
- }
- else
- {
- if(Cmd[i]!='\0')
- {
- p=&Cmd[i+1];
- }
- }
- Cmd[i]='\0';
- }
- i++;
- }
- strcpy(Cmd,"");
- return(Cmd);
- }
- char *Strip(char *s)
- {
- char Cmd[200];
- register int i;
- char *p;
- sr(s);
- p=s;
- i=0;
- while(*(s+i)==' ') { p++; i++; }
- return(p);
- }
- int Words(char *s)
- {
- register int i;
- register int j;
- j=0;
- i=0;
- while(*(s+i)!='\0')
- {
- if(*(s+i)==' ') j++;
- }
- return(j);
- }
- int LastPos(char *c,char *s)
- {
- register int i;
- register int j;
- j=0;
- i=strlen(s)-1;
- while(i)
- {
- if(!strncmp(s+i,c,strlen(c))) { j=i; break; }
- i--;
- }
- return(j);
- }